﻿// 5080. 最小和.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

using namespace std;
/*
https://www.acwing.com/problem/content/5083/


给定一个长度为 n的整数序列 a1,a2,…,an。

请你回答 Q个询问。

每个询问给定一个区间 [l,r]，请你找到一个可能的整数 x，使得 ∑i=lr|x−ai|的值尽可能小，并输出这个最小可能值。

输入格式
第一行包含整数 n。

第二行包含 n个整数 a1,a2,…,an。

第三行包含整数 Q。

接下来 Q行，每行包含两个整数 l,r，表示一个询问区间。

输出格式
每个询问输出一行结果，一个整数，表示 ∑i=lr|x−ai|的最小可能值。

数据范围
1≤n≤105
,
1≤ai≤109
,
1≤Q≤105
,
1≤l≤r≤n。

输入样例：
5
2 3 3 4 4
3
1 2
2 2
2 5
输出样例：
1
0
2
*/

/*
20
8 10 8 8 5 3 9 10 8 4 4 2 9 9 1 3 3 2 4 6
30
15 17
6 16
5 6
1 13
3 9
13 14
13 19
17 20
4 20
9 19
14 15
8 8
8 19
17 17
9 17
11 19
5 7
3 8
8 18
1 11
11 14
4 10
4 13
5 9
13 20
5 6
4 16
5 17
8 13
14 18
*/


const int N = 100010;
int pre[N];
int n; int q;

int main()
{
    cin >> n;
    for (int i = 1; i <= n; i++) {
        int t; cin >> t;
        pre[i] = pre[i - 1] + t;
    }
    cin >> q;
    while (q--) {
        int l, r;
        cin >> l >> r;
        int sum = pre[r] - pre[l - 1];
        cout << sum - sum / (r - l + 1) * (r - l + 1) << endl;
    }

    return 0;
}

 